package com.xiangxiao.rpan.storage.dao;

import com.xiangxiao.rpan.storage.entity.FilterConfig;
import com.xiangxiao.rpan.storage.entity.PasswordConfig;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @auther xiangxiao
 * @email 573768011@qq.com
 * @data 2023/11/16 20:50
 */
@Mapper
public interface FilterConfigMapper {

  /**
   * 根据存储源 ID 获取存储源配置列表
   * @param   storageId
   *          存储源 ID
   * @return  存储源过滤器配置列表
   */
  List<FilterConfig> findByStorageId(@Param("storageId") Integer storageId);

  /**
   * 根据存储源 ID 删除过滤器配置
   * @param   storageId
   *          存储源 ID
   * @return  删除条数
   */
  int deleteByStorageId(@Param("storageId") Integer storageId);

  /**
   * 插入新的过滤规则，如果没有 id 则新增，有则更新
   * @param   filterConfig
   * @return  保存后的id
   */
  Integer insertSingle(FilterConfig filterConfig);

  /**
   * 获取所有类型为禁止访问的过滤规则
   * @param   storageId
   *          存储 ID
   * @return  禁止访问的过滤规则列表
   */
  List<FilterConfig> findByStorageIdAndInaccessible(@Param("storageId")Integer storageId);
}
